Ensure sqlite3_mem transaction tests run in memory #39158
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
SQLite3 does not recognize paths as file URIs unless the
SQLite3::Constants::Open::URI
flag is set. Therefore, without this flag, a path like"file::memory:"
is interpreted as a filename, causing a"file::memory:"
file to be created and used as the database. Most tests inSQLite3TransactionTest
picked up this flag fromshared_cache_flags
, but a few did not. Because those tests were creating a file, the path was changed in #38620 such that it no longer pointed to an in-memory database.This commit restores the database path as
"file::memory:"
and ensures the URI flag is set wheneverin_memory_db?
is true.I discovered this issue when I ran:
more than once, and received the following error:
After some digging, I found this discussion: #38620 (comment)
This PR resolves that discussion, though there may be a larger discussion to be had about enabling this flag by default.